using Net35.Xrm.Sdk.Query;
using System;
using System.Runtime.Serialization;
namespace Net35.Xrm.Sdk.Metadata.Query
{
	[DataContract(Name = "MetadataFilterExpression", Namespace = "http://schemas.microsoft.com/xrm/2011/Metadata/Query")]
	public sealed class MetadataFilterExpression : IExtensibleDataObject
	{
		private DataCollection<MetadataConditionExpression> _conditions;
		private DataCollection<MetadataFilterExpression> _filters;
		public ExtensionDataObject ExtensionData
		{
			get;
			set;
		}
		[DataMember]
		public DataCollection<MetadataConditionExpression> Conditions
		{
			get
			{
				DataCollection<MetadataConditionExpression> arg_18_0;
				if ((arg_18_0 = this._conditions) == null)
				{
					arg_18_0 = (this._conditions = new DataCollection<MetadataConditionExpression>());
				}
				return arg_18_0;
			}
			private set
			{
				this._conditions = value;
			}
		}
		[DataMember]
		public LogicalOperator FilterOperator
		{
			get;
			set;
		}
		[DataMember]
		public DataCollection<MetadataFilterExpression> Filters
		{
			get
			{
				DataCollection<MetadataFilterExpression> arg_18_0;
				if ((arg_18_0 = this._filters) == null)
				{
					arg_18_0 = (this._filters = new DataCollection<MetadataFilterExpression>());
				}
				return arg_18_0;
			}
			private set
			{
				this._filters = value;
			}
		}
		public MetadataFilterExpression()
		{
		}
		public MetadataFilterExpression(LogicalOperator filterOperator)
		{
			this.FilterOperator = filterOperator;
		}
	}
}
